home *** CD-ROM | disk | FTP | other *** search
/ 9-Digit Zip Code Directory / 9-Digit Zip Code Directory (American Business Information) (ABIZIP-12).ISO / z4src.zip / PCXLIB.H < prev    next >
C/C++ Source or Header  |  1992-07-01  |  9KB  |  202 lines

  1. /* pcxLib.H                                                                 */
  2. /* Copyright (c) Genus Microprogramming, Inc. 1988-92  All Rights Reserved. */
  3.  
  4. /****************************************************************************
  5.  
  6.   Function declarations for the PCX Programmer's Toolkit, for C.
  7.  
  8.  
  9.   Microsoft C version 6.0                 Programmer: Chris Howard 03/02/88
  10.                                                       Daniel Sie   10/15/91
  11.                                                       Luhit Young  03/01/92
  12.  
  13. *****************************************************************************/
  14.  
  15. /* PCX Version number */
  16. #define pcxHARD      5                      /* Version = 3.0 w/palette     */
  17.  
  18. /* Supported GX display types */
  19. #define pcxMINDISP   0                      /* Don't use gxMAXDISP, since  */
  20. #define pcxMAXDISP   gxVESA_105             /* it may not supported        */
  21.  
  22. /* Printer Ports */
  23. #define pcxLPT1      0                      /* Printer port 1              */
  24. #define pcxLPT2      1                      /* Printer port 2              */
  25. #define pcxLPT3      2                      /* Printer port 3              */
  26.  
  27. /* Printer Types */
  28. #define pcxMINPRINT  0                      /* Minimum printer type        */
  29. #define pcxLASER     0                      /* HP LaserJet                 */
  30. #define pcxDOTMAT    1                      /* Dot Matrix                  */
  31. #define pcxMAXPRINT  1                      /* Maximum printer type        */
  32.  
  33. /* Printer Modes */
  34. #define pcxDRAFT     0                      /* Draft mode                  */
  35. #define pcxQUALITY   1                      /* Quality                     */
  36.  
  37. /* Printer Scales */                
  38. #define pcxSCALE100  0                      /* 100%                        */
  39. #define pcxSCALE75   1                      /*  75%                        */
  40. #define pcxSCALE50   2                      /*  50%                        */
  41. #define pcxSCALE25   3                      /*  25%                        */
  42. #define pcxSCALE200  4                      /* 200%                        */
  43.  
  44. /* Printer Flags */
  45. #define pcxNORESET   0                      /* No reset before printing    */
  46. #define pcxRESET     1                      /* Reset before printing       */
  47. #define pcxNOEJECT   0                      /* No eject after printing     */
  48. #define pcxEJECT     1                      /* Eject page after printing   */
  49.  
  50. /* Error Codes */
  51. #define pcxSUCCESS        0                 /* Successful                  */
  52. #define pcxERR_NOTPCX     -3000             /* Not a valid pcx buffer/file */
  53. #define pcxERR_BADPRINT   -3001             /* Not a valid printer type    */
  54. #define pcxERR_BADPORT    -3002             /* Not a valid printer port    */
  55. #define pcxERR_PRINTER    -3003             /* Printer time-out error      */
  56. #define pcxERR_NOTBW      -3004             /* Not a black/white image     */
  57.  
  58. /* PCX File Header */
  59. typedef struct pcxheader {
  60.         char         manuf;                 /* Always =10 for Paintbrush   */
  61.         char         hard;                  /* Version information         */
  62.         char         encod;                 /* Run-length encoding (=1)    */
  63.         char         bitpx;                 /* Bits per pixel              */
  64.         unsigned     x1;                    /* Picture dimensions (incl)   */
  65.         unsigned     y1;
  66.         unsigned     x2;
  67.         unsigned     y2;
  68.         unsigned     hres;                  /* Horiz DPI resolution        */
  69.         unsigned     vres;                  /* Vert  DPI resolution        */
  70.         char         clrma[48];             /* Pallete                     */
  71.         char         vmode;                 /* (ignored)                   */
  72.         char         nplanes;               /* Number of planes (ver 2.5=0)*/
  73.         unsigned     bplin;                 /* Bytes per line              */
  74.         unsigned     palinfo;               /* Palette Info (1=col, 2=gray)*/
  75.         unsigned     shres;                 /* Horiz display resolution    */
  76.         unsigned     svres;                 /* Vert  display resolution    */
  77.         char         xtra[54];              /* Extra space (filler)        */
  78. } PCXHEADER;
  79.  
  80. typedef PCXHEADER    *PCXHEADERPTR;
  81.  
  82. /* Functions */
  83. #ifdef __cplusplus
  84. extern "C" {
  85. #endif
  86.  
  87. /* pcxBD.asm */
  88. extern  int   far pascal  pcxBufferDisplay     (char far *,int,int,int,int);
  89.  
  90. /* pcxBF.asm */
  91. extern  int   far pascal  pcxBufferFile        (char far *,int,char far *);
  92.  
  93. /* pcxBH.asm */
  94. extern  int   far pascal  pcxVerifyBuffer      (char far *);
  95. extern  int   far pascal  pcxGetBufferHeader   (char far *,PCXHEADER far *);
  96. extern  int   far pascal  pcxSetBufferHeader   (char far *,PCXHEADER far *);
  97. extern  int   far pascal  pcxGetBufferType     (char far *);
  98.  
  99. /* pcxBL.asm */
  100. extern  int   far pascal  pcxBufferScale       (char far *,int,GXHEADER far *);
  101.  
  102. /* pcxBP.asm */
  103. extern  int   far pascal  pcxSetPrinter        (int,int,int,int,int,int);
  104. extern  int   far pascal  pcxBufferPrint       (char far *,int,int,int);
  105.  
  106. /* pcxBV.asm */
  107. extern  int   far pascal  pcxBufferVirtual     (char far *,int,GXHEADER far *,int,int);
  108.  
  109. /* pcxDB.asm */
  110. extern  long  far pascal  pcxDisplayBuffer     (char far *,int,int,int,int,int,int);
  111.  
  112. /* pcxDF.asm */
  113. extern  int   far pascal  pcxDisplayFile       (char far *,int,int,int,int,int);
  114.  
  115. /* pcxDP.asm */
  116. extern  int   far pascal  pcxDecodePalette     (int,char far *,char far *);
  117. extern  int   far pascal  pcxEncodePalette     (int,char far *,char far *);
  118. extern  int   far pascal  pcxGetBufferPalette  (int,char far *,int,char far *);
  119. extern  int   far pascal  pcxSetBufferPalette  (int,char far *,int,char far *);
  120. extern  int   far pascal  pcxGetFilePalette    (int,char far *,char far *);
  121. extern  int   far pascal  pcxSetFilePalette    (int,char far *,char far *);
  122. extern  int   far pascal  pcxGetLibPalette     (int,GXLIB far *,char far *,char far *);
  123.  
  124. /* pcxED.asm */
  125. extern  int   far pascal  pcxEncodeScanline    (char far *,unsigned,char far *);
  126. extern  int   far pascal  pcxDecodeScanline    (char far *,unsigned,char far *,unsigned,unsigned far *,unsigned far *);
  127.  
  128. /* pcxFB.asm */
  129. extern  int   far pascal  pcxFileBuffer        (char far *,char far *,int);
  130.  
  131. /* pcxFC.asm */
  132. extern  int   far pascal pcxFileConvert        (char far *,GXHEADER far *);
  133.  
  134. /* pcxFD.asm */
  135. extern  int   far pascal  pcxFileDisplay       (char far *,int,int,int);
  136.  
  137. /* pcxFH.asm */
  138. extern  int   far pascal  pcxVerifyFile        (char far *);
  139. extern  int   far pascal  pcxGetFileHeader     (char far *,PCXHEADER far *);
  140. extern  int   far pascal  pcxSetFileHeader     (char far *,PCXHEADER far *);
  141. extern  int   far pascal  pcxGetFileType       (char far *);
  142.  
  143. /* pcxFI.asm */
  144. extern  int   far pascal  pcxFileImage         (int,char far *,GXHEADER far *,int);
  145.  
  146. /* pcxFL.asm */
  147. extern  int   far pascal  pcxFileScale         (char far *,GXHEADER far *);
  148.  
  149. /* pcxFP.asm */
  150. extern  int   far pascal  pcxFilePrint         (char far *,int,int);
  151.  
  152. /* pcxFV.asm */
  153. extern  int   far pascal  pcxFileVirtual       (char far *,GXHEADER far *,int,int);
  154.  
  155. /* pcxLB.asm */
  156. extern  int   far pascal  pcxLibBuffer         (GXLIB far *,char far *,char far *,int);
  157.  
  158. /* pcxLC.asm */
  159. extern  int   far pascal  pcxLibConvert        (GXLIB far *,char far *,GXHEADER far *);
  160.  
  161. /* pcxLD.asm */
  162. extern  int   far pascal  pcxLibDisplay        (GXLIB far *,char far *,int,int,int);
  163.  
  164. /* pcxLH.asm */
  165. extern  int   far pascal  pcxVerifyLib         (GXLIB far *,char far *);
  166. extern  int   far pascal  pcxGetLibHeader      (GXLIB far *,char far *,PCXHEADER far *);
  167. extern  int   far pascal  pcxGetLibType        (GXLIB far *,char far *);
  168.  
  169. /* pcxLI.asm */
  170. extern  int   far pascal  pcxLibImage          (int,GXLIB far *,char far *,GXHEADER far *,int);
  171. extern  int   far pascal  pcxFreeImage         (GXHEADER far *);
  172.  
  173. /* pcxLL.asm */
  174. extern  int   far pascal  pcxLibScale          (GXLIB far *,char far *,GXHEADER far *);
  175.  
  176. /* pcxLP.asm */
  177. extern  int   far pascal  pcxLibPrint          (GXLIB far *,char far *,int,int);
  178.  
  179. /* pcxLV.asm */
  180. extern  int   far pascal  pcxLibVirtual        (GXLIB far *,char far *,GXHEADER far *,int,int);
  181.  
  182. /* pcxSD.asm */
  183. extern  int   far pascal  pcxGetVersion        (int far *,int far *);
  184.  
  185. /* pcxVB.asm */
  186. extern  long  far pascal  pcxVirtualBuffer     (GXHEADER far *,int,int,int,int,char far *,int);
  187.  
  188. /* pcxVF.asm */
  189. extern  int   far pascal  pcxVirtualFile       (GXHEADER far *,int,int,int,int,char far *);
  190.  
  191. /* pcxVP.asm */
  192. extern  int   far pascal  pcxVirtualPrint      (GXHEADER far *, int, int);
  193.  
  194. /* pcxYP.asm */
  195. extern  int   far pascal  pcxDisplayPrint      (int, int);
  196.  
  197. #ifdef __cplusplus
  198. }
  199. #endif
  200.  
  201.  
  202.